Projekt staż mBank 2021

Mateusz Jakubczak

Pierwsze co należy zrobić w analizie to przygotować dane.

Mamy dwie zmienne, które, patrząc na ich nazwę, są wynikiem innych modeli.

Ponieważ nie znamy parametrów tych modeli poza tym jakie zmienne zostały w nich wykorzystane nie możemy użyć tych zmiennych, jak i nie ma ich w specyfikacji samego zadania, dlatego pozbywamy się tych zmiennych. Wyrzucamy równiez zmienną CLIENTNUM, która stanowi tylko index dla naszych danych.

Mamy parę niezgodnych typów kategorycznych rozpoznanych jako typ "string". Poprawiamy to.

Sprawdzamy czy są duplikaty oraz puste wartości.

Dane są czyste i możemy z nimi pracować.

Wizualizacja danych

Wnioski z eksploracji:

  1. Mamy podejrzanie dużą liczbę rachunków, które mają dokładnie 3 lata (36 miesięcy) od momentu założenia konta.
  2. Wartości typu NaN są nie prawidłowo zakwalifkowane jako "Unknown".
  3. Nasza zmienna endogeniczna jest niezbalansowana.
  4. Mamy podejrzanie wysoką liczbę klientów z wiekiem około 48 lat.
  5. Zmienna Card_Category jest wysoce niezbalansaowana, 20 platynowych kart do 9.5 tyś niebieskich.
  6. Credit limit posiada dystrybucję z grubym ogonem.
  7. Większość zmiennych nie przyjmuje rozkładu normalnego.

Sprawdźmy korelacje naszej zmiennej endogenicznej

Poniższa kolumna przedstawia korelacje typu phik, im warość jest bliższa 1, tym bardziej skorelowane ze sobą są dwie wartości.

Mamy parę wartości typu NA w zmiennych kategorycznych. W dalszej części analizy zdecydujemy co z nimi zrobimy, bo może się okazać że nie wykorzystamy tych zmiennych do dalszej analizy.

Wnioski z korelacji:

  1. Mamy wysoką korelację z ilością wykonanych transakcji a zmienną endogeniczną.
  2. Zmienne z NA mają bardzo niską korelację ze zmienną endogeniczną.

Badanie hipotez:

  1. Posiadacze wyższej klasy karty mają mniejszą szansę na zamknięcie konta.
  2. Posiadacze konta wykonujący dużo transakcji mają mniejszą szansę na zamknięcie konta.
  3. Osoby posiadające konto przez długi czas mają mniejszą szansę na zamknięcie konta.

Hipoteza 1

Z one hot encodingu wynika, że obecny konsument ma przypisane "0", natomiast konsument z zamkniętym kontem ma przypisaną wartość "1" .

Możemy odrzucić hipotezę, że klasa karty wpływa na szansę zamknięcia konta.

Hipoteza 2

Zakładamy, że osoby wykonujące dużo transakcji znajdują się w 90 percentylu wykonanych transakcji(Wartość percentyla należało by wyestymować budując modela, ale to odbędzie się w dalszych krokach analizy).

Ponieważ sama liczba trazakcji niewiele nam mówi i jest obciążona poprzez wartość tych trazakcji, do analityki stworzymy zmienną opisującą średnią wartość transakcji. Sprawdźmy czy taka zmienna lepiej koreluje ze zmienną endogeniczną.

Zmienna ta koreluje o wiele gorzej niż oddzielnie liczba transakcji oraz wartość transakcji. Wybieramy do dalszej analizy liczby przeprowadzonych transakcji oraz porzucamy stworzoną zmienną.

P-value jest równe 0,

co daje nam pewność o odrzuceniu $H_0$ dla t testu. Prawdopodobieństwo odejścia jest zdecydowanie niższe dla osób wykonujących dużo transakcji.

Sprawdźmy jeszcze hipotezę - Czy wykonywanie małej liczby transakcji zwiększa szanse na odejście?

P-value jest znów równe 0, co oznacza że odrzucamy $H_0$ dla t testu i możemy powiedzieć, że :

Im więcej transakcji wykonuje dana osoba tym mniejsza jest jej szansa na odejście.

Hipoteza 3

Osoby posiadające konto przez długi czas mają mniejszą szansę na zamknięcie konta.

Robimy takie same założenia jak testując wcześniejsze hipotezy.

P-vale jest wysokie, nie odrzucamy $H_0$ dla t testu, co oznacza, że długość korzystania z usług banku przez klienta nie wpływa znacząco na jego szansę odejścia.

Wizualne zbadanie interakcji

Przed zakończeniem analizy zbadajmy jeszcze wizualnie jak zachowują się nasze zmienne, patrząc na róznice wizualne w parach wykresów wielu zmiennych.

Interesujące wyniki analizy wizualnej:

  1. Całkowita wartość transakcji zachowuje się podobnie (im większa wartość, tym mniejsza szansa odejścia klienta) co całkowita liczba transakcji.
  2. Niska wartość dla "Total_Amt_Chng_Q4_Q1" sygnalizuje możliwość odejścia klienta. W ten sam sposób zachowuje się "Total_Ct_Chng_Q4_Q1".
  3. Niska wartość utylizacji karty również sugeruje możliwość odejścia klienta.
  4. Wysoka liczba kontaktów z klientem sygnalizuje
  5. Niska liczba relacji z klientem sygnalizuje możliwość odejścia.
  6. Niska wartość "Total_Revolving_Bal" sygnalizuje możliwość odejścia.

Dla bardzo wysokiej liczby kontaktów z klientem oraz bardzo niskiej jego szansa na odejście jest niska.

Po przeprowadzeniu wstępnej analizy przechodzimy do modelowania

Modelowanie

Z analizy wiemy, które zmienne są interesujące i sugerują jakich modeli możemy użyć. Ważne jest, aby wybrać model, który jest odporny na niezbalansowane dane lub użyć metody do samplowania z danych terningowych z zachowaniem balansu w danych.

Należy sobie teraz zadać pytanie, czego oczekujemy od modelu, żeby model był interpretowalny czy, żeby zwracał jak najlepsze wyniki. Mamy tutaj trade-off wyjaśnialny model nie będzie miał dużej precyzji czy celności natomiast model z dużą precyzją i celnością może być nie do zintepretowania. Biorąc pod uwagę to oraz wcześniejsza analizę stworzymy wybrane modele:

  1. Drzewo decyzyjne
  2. Regresją logistyczną
  3. Naive bayes

Pierwszy krok to podział danych na testowy i treningowy

Został wybrany tylko podzbiór zmiennych, które wyglądały na interesujące w procesie analizy.

Drzewo decyzyjne

Interpretacja drzewa polaga na przejściu przez drzewo sprawdzając podane warunki. Im mocniejszy kolor, tym większą pewność mamy o poprawnym przewidzeniu.

Interpretacja wyników:

  1. Całkowita liczba transakcji okazała się najbardziej znaczącą zmienną
  2. Jeśli mamy niską liczbę transakcji oraz obrotów to liczba poroduktów posiadanych przez klienta dobrze pozwala nam określić prawdopodobieństwo zamknięcia konta.
  3. Idąc po gałęzi najbardziej na lewo widzimi bardzo dobrą klasyfikację dla klienta nieaktywnego z dużym prawdopodobieństwem odejścia i odwrotną sytuację, gdy idziemy gałęzią najbardziej w prawo.

Eksperyment na niezbalansowanych danych

Wnioski z modelu:

  1. Model, który jest prosty nie ma tak dobrych metryk jak model bardziej skomplikowany, ale jest wyjaśnialny.
  2. Oversampling danych znacząco polepsza wyniki modelu i usuwa 'baias' na bardziej popularną klasę, co widzimy po spadku f1_score, przy porównaniu modeli na zbalansownaych i niezbalansowanych danych.
  3. Analiza dużego modelu jest możliwa, jednak jest ona dosyć skomplikowana ze wzgledu na dużą wielkość drzewa decyzyjnego.

Regresja logistyczna

Interpretacja wyników

Regresja logistyczna dała nam zadowalające wyniki, przy czym każdy jej parametr jest interpretowalny. Same wynki modelu są zadowalające.

Naive bayes

Widzmy overfit na niezbalansowaną kategorię w przypadku, gdy nie balansujemy naszych danych. Dlatego do interptetacji wyników użyjemy modelu trenowanego na zbalansowanych danych.

Porównanie modeli

Do porównania wykorzysty kross validacje wraz z dodaniem dodatkowych modeli, które nie zostały opisane w wcześniejszej analizie.

Jak widzmy drzewo decyzjne okazło się najlepszym spośród trzech modeli, jednka nie jest w pełni wyjaśnialne.

Przed zakończeniem analizy porownajmy wyniki tych modeli z modelami trudnieszymi do zinterpretownia ale wykorzysujące wszystkie zmienne.

Widzimy że mimo dodania dodatkowych zmiennych wyniki nie zmieniły się znacząco, poza wynikami dla Regresji logistycznej której accuarcy wzrosło o 10 pp.

Wnioski z analizy i możliwe startegie na proprawę:

  1. Najważniejszą zmienną jest ilość transakcji wykonywana przez klienta, dobrą strategią na zatrzymanie danego klienta może być nagradzanie go za wykonywanie wielu transakcji.
  2. W przypadku gdy kontaktujemy się z klientem 5 raz zdecydowanie zwiększamy jego prawdopodobieństow na odejście, z danych wynika że Kontak z takim klientem jeszcze 6 raz zdecydowanie zwiększa szansę na zatrzymanie takiego klienta. Tutaj potrzebna by była bardziej dokładna analiza łącznie z oparciem o same dane dotycząco kontaktów żeby zbadać tą sytułacje.
  3. Nie widzimy znaczącego wpływu zmiennych demograficznych.